Formal Language Theory: Integrating Experimentation and Proof
نویسنده
چکیده
Since the 1930s, the subject of formal language theory, also known as automata theory, has been developed by computer scientists, linguists and mathematicians. Formal languages (or simply languages) are sets of strings over finite sets of symbols, called alphabets, and various ways of describing such languages have been developed and studied, including regular expressions (which " generate " languages), finite automata (which " accept " languages), grammars (which " generate " languages) and Turing machines (which " accept " languages). For example, the set of identifiers of a given programming language is a formal language—one that can be described by a regular expression or a finite automaton. And, the set of all strings of tokens that are generated by a programming language's grammar is another example of a formal language. Because of its applications to computer science, most computer science programs offer both undergraduate and graduate courses in this subject. Perhaps the best known applications are to compiler construction. For example, regular expressions and finite automata are used when specifying and implementing lexical analyzers, and grammars are used to specify and implement parsers. Turing machines—or other machines/programs of equivalent power—are used to formalize the notion of algorithm, which in turn makes possible the study of what is, and is not, computable. Many of the results of formal language theory are proved constructively, using algorithms that are useful in practice. In typical courses on formal language theory, students apply these algorithms to toy examples by hand, and learn how they are used in applications. Although much can be achieved by a paper-and-pencil approach to the subject, students would obtain a deeper understanding of the subject if they could experiment with the algorithms of formal language theory using computer tools. Consider, e.g., a typical exercise of a formal language theory class in which students are asked to synthesize a deterministic finite automaton that accepts some language, L. With the paper-and-pencil approach, the student is obliged to build the machine by hand, and then (hopefully) prove that it is correct. But, given the right computer tools, another approach would be possible. First, vii viii Preface the student could try to express L in terms of simpler languages, making use of various language operations (e.g., union, intersection, difference, concatenation, closure). The student could then synthesize automata accepting the simpler languages , enter these machines into the system, and then combine these machines using operations …
منابع مشابه
Theory-Specific Automated Reasoning
In designing a large-scale computerized proof system, one is often confronted with issues of two kinds: issues regarding an underlying logical calculus, and issues that refer to theories, either specified axiomatically or characterized by indication of either a privileged model or a family of intended models. Proof services related to the theories most often take the form of satisfiability deci...
متن کاملThe Circus Testing Theory Revisited in Isabelle/HOL
Formal specifications provide strong bases for testing and bring powerful techniques and technologies. Expressive formal specification languages combine large data domain and behavior. Thus, symbolic methods have raised particular interest for test generation techniques. Integrating formal testing in proof environments such as Isabelle/HOL is referred to as “theorem-prover based testing”. Theor...
متن کاملA synthesis of the procedural and declarative proof styles of interactive theorem proving
This paper contains three contributions. It presents a new mathematical language with an accompanying user interface. It demonstrates a new interaction style for interactive theorem provers. And it proposes a methodology for integrating almost all existing formal mathematical libraries. The mathematical language combines the Mizar proof language with the HOL formula and tactic languages. The in...
متن کامل